Efficient and effective 3D visualization is a common problem in the fields of computer aided design (CAD), geographic information systems (GIS), medical imaging, surveying/scanning (theodolites, total stations, GPS, airborne laser radar/scanning, terrestrial laser radar/scanning, photogrametry), simulation, and animation. In all of these fields, the collection of large amounts of geometric information is becoming more commonplace.
Recent advances in technology such as LIDAR scanning technologies have resulted in the ability to collect billions of point samples on physical surfaces, over large areas, in a matter of hours. In a LIDAR process, a laser beam scans across a view that encompasses the structure of interest. The scanning device measures a large number of points that lie on surfaces visible in the scene. Each scan point has a measured location in 3D space, to within some measurement error, that typically is recorded relative to a point (x,y,z) in the local coordinate system of the scanner. The resulting collection of points is often referred to as one or more point clouds, where each point cloud can include points that lie on many different surfaces in the scanned view.
LIDAR systems are described, for example, in U.S. Pat. No. 5,988,862, filed Apr. 24, 1996, entitled “INTEGRATED SYSTEM FOR QUICKLY AND ACCURATELY IMAGING AND MODELING THREE DIMENSIONAL OBJECTS,” which is hereby incorporated herein by reference. Other devices and methods of using these devices to capture and/or model data are described in U.S. Pat. Nos. 6,420,698; 6,604,068; and 6,633,290; each is which is incorporated herein by reference. An exemplary LIDAR system 100 shown in FIG. 1 utilizes a Field Digital Vision (FDV) module 102 that includes a scanning sensor for scanning an object 104, such as a building of a piece of machinery. The scanning sensor also can sense the position in three-dimensional space of selected points on the surface of the object 104. The FDV module 102 generates a point cloud 106 that represents the sensed positions of the selected points. The point cloud 106 also can represent other attributes of the sensed positions, such as reflectivity, surface color, and texture, where desired.
A control and processing station 108 interacts with the FDV 102 to provide control and targeting functions for the scanning sensor. In addition, the processing and control station 108 can utilize software to analyze groups of points in the point cloud 106 to generate a model of the object of interest 104. A user interface 118 allows a user to interact with the system, such as to view a two-dimensional (2D) representation of the three-dimensional (3D) point cloud, or to select a portion of that object to be viewed in higher detail as discussed elsewhere herein. The processing station can include any appropriate components, such as standard computer and/or processing components. The processing station also can have computer code in resident memory, on a local hard drive, or in a removable drive or other memory device, which can be programmed to the processing station or obtained from a computer program product such as a CD-ROM or download signal. The computer code can include instructions for interacting with the FDV and/or a user, and can include instructions for undertaking and completing any modeling and/or scanning process discussed, described, or suggested herein.
The FDV 102 can include a scanning laser system (LIDAR) 110 capable of scanning points of the object 104, and that generates a LIDAR data signal that precisely represents the position in 3D space of each scanned point. The LIDAR data signal for the groups of scanned points can collectively constitute the point cloud 106. In addition, a video system 112 can be provided, which in one embodiment includes both wide angle and narrow angle CCD cameras. The wide angle CCD camera can acquire a video image of the object 104 and provides to the control and processing station 108, through a control/interface module 114, a signal that represents the acquired video image.
The acquired video image can be displayed to a user through a display device 122 of a user interface 118 of the control and processing station 108. The display device can be any appropriate display device, such as a standard computer monitor. Through the user interface 118, the user can use an input device 124 to select a portion of the image containing an object to be scanned. The input device can be any appropriate input device, such as a keyboard, mouse, or stylus/touchpad. In response to user input, a processing device 116 of the control and processing station can provide a scanning control signal to the LIDAR 110 for controlling the portion of the surface of the object that should be scanned by the LIDAR. More particularly, the scanning control signal can be used to control an accurate and repeatable beam steering mechanism that steers a laser beam of the LIDAR 110. The narrow angle CCD camera of the video system 112 can capture the intensity of the laser returned from each laser impingement point, along with any desired texture and color information, and can provide this captured information to the control and processing station 108. The control and processing station can include a data processing system (e.g., a notebook computer or a graphics workstation) having special purpose software that, when executed, instructs the data processing system to perform the FDV 102 control and targeting functions, and also to perform the model generation functions discussed elsewhere herein. Once the object has been scanned and the data transferred to the control and processing station, the data and/or instructions relating to the data can be displayed to the user through the display device 122. Alternatively, the user can select instructions before or during the LIDAR scan. The data can be written to resident memory 120 during capture, and can be written to an external database 126 either during or after each scan (depending upon the size of the data set). Resident memory can include any available memory device local to the control and processing station, including but not limited to RAM memory. If multiple scans are taken, these data sets can be registered in the database 126 to form a single data set, for a total number of points less than about 40 million for current technology, or can be registered but left as separate data sets for point sets larger than 40 million points, in order to allow the data to be loaded into a computer for processing and/or analysis. Current computer systems can only handle about 10 million points efficiently, up to a maximum of about 40 million points through compression and other techniques, which also comes with decreasing performance and an increasing risk of crash problems as the size gets larger. Volumetric methods can handle more than 40 million points, but volumetric representations only store an approximation of the scan points; the actual scan points are not available for processing. This simplification of the data can result in a loss of information and/or accuracy.
Current scanning technologies can achieve sampling rates of up to 1 million points per second, with an accuracy of a few millimeters. While these advances can greatly increase the accuracy and complexity of the generated models, the advances also come with problems such as how to store, visualize, manipulate, and/or extract models and measurements from very large amounts of data, particularly where the vast amount of data cannot simply be loaded into computer memory, measured, partitioned, and modeled. For instance, data sets used to contain less than a million points but now can contain over 200 million points. The inability to easily process the data is further complicated by the fact that data acquired by such scanners must undergo a series of processing steps to be used meaningfully, including the capture, registration, and fitting of the data.
Visual access and navigation of these large datasets is tedious and time consuming, as the amount of data involved can overwhelm most desktop computers. Further, the information is often spatially cluttered. This clutter can cause difficulty in seeing an object of interest that might be buried beneath or obstructed by several other objects. A system user can lose a sense of what is being looked at, as well as the location of the virtual camera on the three-dimensional (3D) data, as a computer monitor provides only a two-dimensional (2D) window on a 3D world.
A significant amount of manual preprocessing is involved to make portions of the datasets readily accessible. Typical preprocessing includes the defining of layers and the specification of named viewpoints. Automatic preprocessing can be used to make data access more efficient, by including spatial indexing on the data and using pre-computed occlusion culling.
Existing systems provide some tools to reduce complexity in viewing these data sets, such as adjustable near and far clip planes that hide geometry in front of, or behind, the planes. These clip planes are used to reduce the depth of visible geometry to a manageable size. Limit boxes can be used to provide a 3D box of visibility that a user can adjust to focus on a particular local region of space. Geometry outside the box is hidden, while geometry within the box is visible. Layer tools can be used to allow users to place portions of geometry on different layers, such that the portions can be hidden or shown on a per layer basis. Fencing tools allow users to specify a region of the projected geometry that can then be hidden (or revealed) by the user. Maps and site plans can be used as a visual aid to navigation to reduce the difficulty in determining location/orientation.
These tools fail to solve many of the above-listed problems, as the data is separated into blocks or sets that are stored separately. This can not only increase difficulty in querying the data, but can cause problems where a view spans a number of blocks and the number of blocks is too large to be stored in memory. Further, the need for pre-processing using the above-described tools takes up valuable time and resources. These approaches do not allow a user to quickly identify sections of a data set to hide, or make transparent, such that the user can efficiently focus on a specific section of the data.